package com.itheima.web.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import java.util.Timer;

// ServletContextListener: 监听ServletContext的创建和销毁
// 应用场景1: 我们将来会学习Spring框架,Spring框架在程序启动的时候会帮我们创建很多对象
// 应用场景2: 程序启动,定时扫描,每隔两分钟清除超时订单
@WebListener
public class MyServletContextListener implements ServletContextListener {
    private Timer timer;
    @Override // ServletContext上下文对象创建时执行(程序启动)
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("contextInitialized 程序启动");
        // 程序一启动我们就创建一个定时器,每隔两分钟清除超时订单
        timer = new Timer();
        // schedule(要执行的任务, 多久后第一次执行, 每隔多久重复执行);
        // timer.schedule(new MyTimerTask(), 5000, 2000);
    }

    @Override  // ServletContext上下文对象结束时执行(程序结束)
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("contextDestroyed 程序结束");
        // 停止定时器
        timer.cancel();
    }
}
